In software development, source code files or computer aided design (CAD) data files are sometimes placed on file servers and shared to perform distributed development at locations around the world. Most of such file servers include a version management system.
Therefore, in a general flow of development, a developer at each of the locations checks out a snapshot at one given point in time (for example, a given version of a shipped product) of a repository on the file server, modifies only a file that needs a bug fix, and after compilation/verification of modification, checks in the modified file to the repository in a data center to newly create a snapshot (raise the version). Such distributed development raises a problem of a network delay because it is necessary to check out a large number of files from the file server placed in a remote site.
As a technology for solving the above-mentioned problem of the network delay, there is an on-demand copy technology. In the technology, instead of checking out all the files from the file server, a directory or file to which access has been made is first checked out as a directory or file that retains only meta-data called “stub”.
Further, in on-demand copy, when the developer actually opens the directory or reads or writes the file, the directory or file is copied on demand from the file server (materialization of a stub). The on-demand copy technology can reduce communications performed between a terminal of the developer and the file server in the remote site to a minimum, which can reduce an influence of the network delay.
In addition, as a technology for realizing high-speed access, there is known a proxy server that connects an internal network and an external network. The proxy server, for example, exists between a client in the internal network and a server in the external network and relays communications between the client and the server.
The proxy server caches the file requested by the client from the server to thereby return the cached file in place of the server when another client requests the same file afterward. For example, by locating the proxy server in a local area network (LAN), once a file is cached, a client within the LAN can acquire the file with high speed without directly making a query to a server outside the LAN.
In addition, as one of caching technologies for the proxy server, there is a distributed caching technology. In the distributed caching technology, a plurality of proxy servers are provided, and if the proxy server that has received a request does not have the file cached therein, the proxy server queries another proxy server as to whether or not the another proxy server retains a cache file thereof.
If the cache file exists on a given proxy server, by acquiring the file from the given proxy server, it is possible to reduce the number of times to communicate to an original server exhibiting a large network delay. A protocol for verifying a presence/absence of the cache between the proxy servers is standardized as an Internet cache protocol (ICP).
With regard to the proxy server using the ICP, as the number of cooperative proxy servers increases, it is possible to improve a cache hit rate, however network traffic increases because each of the proxy servers queries the presence/absence of the cache file from all the other proxy servers. Therefore, a technology for reducing the number of times to make a query about the cache file between the proxy servers is being under development.
For example, Patent Literature 1 cited below discloses a method for suppressing the number of times to make a query about the cache file between the proxy servers to at most one by using a deterministic algorithm to uniquely derive the proxy server having a given file cached therein from a proxy server name and a uniform resource locator (URL) indicating a place that stores the file.